// 知识点1：数组的两个特殊点：1、不允许拷贝数组，所以不可以使用传值的方式使用数组参数(传值即为拷贝)

//                                              
// 2、通常数组的传递使用的是指针形式，传递的是指针的首地址。

// 	void P_rint(const int*);
// 	void P_rint(const
// int[]);//虽然不能以值传递的方式传递数组，但是可以把形参写成类似数组的形式
// 	void P_rint(const
// int[10]);//这里只是表示我们期望的数组的大小，实际传入的数组大小不一定

// 知识点2：由于数组是以指针的形式传递给函数的，所以函数不知道数组的大小，指针就可能会发生越界问题。有三种方法可以解决这一点问题。
// 1、数组的末尾如果存在结束标记(数组存的是C风格的字符串时，末尾为结束符、空白符)

// while (*cp)//cp指向的内容不为空白符即可
// 	{
// 		cout<<*cp++<<endl;
// 	}

// 2、使用标准库范围，即将数组的首指针和末尾指针都传入函数

// void My_function(const int *begin1, const int
// *end1)//使用常量指针，因为首尾位置的指针肯定是不可改变的
// 	{
// 		/*   */
// 	}

// 3、显示的传递数组的大小，将数组大小作为一个参数传入函数

// void My_function(const int ia[], const int
// Array_size)//使用常量指针，传入数组首元素指针和数组大小
// 	{
// 		/*   */
// 	}

// 知识点3：当函数不需要对数组元素进行写操作时，使用const常量指针。

// 知识点4：引用的数组和数组的引用是有区别的！数组的引用才可以作为函数的参数。

// 	void f(int &a[10]);//引用的数组
// 	void f(int (&a)[10]);//数组的引用

// 知识点5：多维数组的传递，传递的同样是数组的首元素，不过多元数组的首元素本身就是数组
//         void f(int *a[10]);//10个指针构成的数组
// 	void f(int (*a)[10]);//一个指针，指向十个整数元素

// 此题答案较为简单：
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int My_compare(int a,
               int *b) //函数的声明及定义，接受两个参数，一个为数，一个为指针
{
  if (a >= *b) {
    return a;
  } else {
    return *b;
  }
}
int main() {
  cout << "请输入两个整数:";
  int val1, val2;
  cin >> val1 >> val2;
  int *val2_pointer = &val2; //将val2的地址赋给对应指针
  cout << "较大的数为：" << My_compare(val1, val2_pointer) << endl;
}